home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Bavarian / Bavarian #077 (19xx)(APS Electronic).zip / Bavarian #077 (19xx)(APS Electronic).adf / Spezialdruck / Spezialdruck < prev    next >
Text File  |  1988-08-03  |  6KB  |  237 lines

  1. ' Programm Spezialdruck
  2. ' Version 1.1
  3. ' Programmiert 3/1988 von Guido Coenen
  4. ' Dies ist Public Domain !
  5.  
  6.  
  7. DIM Original%(7),Ersatz%(7)
  8. Esc$=CHR$(27)
  9. ON ERROR GOTO Fehler
  10. SCREEN 2,640,200,1,2
  11. WINDOW 1,"Spezialdruck",(0,10)-(631,186),18,2
  12. MENU 1,0,1,"Optionen"
  13. MENU 1,1,1,"Datei ausdrucken"
  14. MENU 1,2,1,"Inhaltsverzeichnis"
  15. MENU 1,3,1,"Verzeichniswechsel"
  16. MENU 1,4,1,"Druckerreset"
  17. MENU 1,5,1,"Ueber das Programm"
  18. MENU 1,6,1,"Kurzbeschreibung"
  19. MENU 1,7,1,"Programm beenden"
  20. MENU ON
  21. GOSUB Autor
  22. RESTORE Anpassungsdaten
  23. FOR X=0 TO 7
  24. READ Original%(X),Ersatz%(X)
  25. NEXT X
  26.  
  27.  
  28. Hauptteil:
  29. ON MENU GOSUB Bearbeitung
  30. GOTO Hauptteil
  31.  
  32. Bearbeitung:
  33. ON MENU(1) GOTO Drucken,Verzeichnis,Wechsel,Druckerreset,Autor,Anleitung,Beenden
  34.  
  35.  
  36. Drucken:
  37. CLS
  38. PRINT SPC(30)"DATEI AUSDRUCKEN"
  39. PRINT SPC(30)"================"
  40. PRINT
  41. PRINT
  42. PRINT SPC(24)"RETURN = Zurueck ins Hauptmenue"
  43. LOCATE 11,10
  44. INPUT "Name der auszudruckenden Datei";Datei$
  45. PRINT
  46. IF Datei$="" THEN
  47.    CLS
  48.    RETURN
  49. END IF
  50. CLS
  51. LOCATE 14,23
  52. PRINT"RETURN = Weiter, ESC = Abbruch"
  53. JN$=""
  54. WHILE (JN$<>CHR$(13) AND JN$<>Esc$)
  55.    JN$=INKEY$
  56. WEND
  57. IF JN$=Esc$ THEN CLS:RETURN
  58. OPEN "PAR:" FOR OUTPUT AS #1
  59. OPEN Datei$ FOR INPUT AS #2
  60. WHILE NOT EOF(2)
  61.    Zeichen$=INPUT$(1,2)
  62.    IF Zeichen$="&" THEN
  63.       GOSUB Interpretieren
  64.    ELSE 
  65.       PRINT Zeichen$;
  66.       GOSUB Anpassung
  67.    END IF
  68.    PRINT#1,Zeichen$;
  69. WEND
  70. PRINT#1,""
  71. BEEP
  72. PRINT 
  73. PRINT "Fertig !"
  74. CLOSE 1
  75. CLOSE 2
  76. RETURN
  77.  
  78.  
  79. Anpassung:
  80. FOR X=0 TO 7
  81. IF Zeichen$=CHR$(Original%(X)) THEN Zeichen$=CHR$(Ersatz%(X))
  82. NEXT X
  83. RETURN
  84.  
  85.  
  86. Interpretieren:
  87. Zeichen$=INPUT$(1,2)
  88. IF Zeichen$="K" THEN Zeichen$=Esc$+"4" : RETURN :' Kursivdruck ein
  89. IF Zeichen$="k" THEN Zeichen$=Esc$+"5" : RETURN :' Kursivdruck aus
  90. IF Zeichen$="N" THEN Zeichen$=Esc$+"x1": RETURN :' NLQ ein
  91. IF Zeichen$="n" THEN Zeichen$=Esc$+"x0": RETURN :' NLQ aus
  92. IF Zeichen$="E" THEN Zeichen$=Esc$+"M" : RETURN :' Elite ein
  93. IF Zeichen$="e" THEN Zeichen$=Esc$+"P" : RETURN :' Elite aus / Pica ein
  94. IF Zeichen$="P" THEN Zeichen$=Esc$+"p1": RETURN :' Proportional ein
  95. IF Zeichen$="p" THEN Zeichen$=Esc$+"p0": RETURN :' Proportional aus
  96. IF Zeichen$="S" THEN Zeichen$=CHR$(15) : RETURN :' Schmalschrift ein
  97. IF Zeichen$="s" THEN Zeichen$=CHR$(18) : RETURN :' Schmalschrift aus
  98. IF Zeichen$="B" THEN Zeichen$=Esc$+"W1": RETURN :' Breitdruck ein
  99. IF Zeichen$="b" THEN Zeichen$=Esc$+"W0": RETURN :' Breitdruck aus
  100. IF Zeichen$="F" THEN Zeichen$=Esc$+"G" : RETURN :' Fettdruck ein
  101. IF Zeichen$="f" THEN Zeichen$=Esc$+"H" : RETURN :' Fettdruck aus
  102. IF Zeichen$="D" THEN Zeichen$=Esc$+"E" : RETURN :' Schatten- (Doppel-) druck
  103. IF Zeichen$="d" THEN Zeichen$=Esc$+"F" : RETURN :' Schattendruck aus
  104. IF Zeichen$="U" THEN Zeichen$=Esc$+"-1": RETURN :' Unterstreichen ein
  105. IF Zeichen$="u" THEN Zeichen$=Esc$+"-0": RETURN :' Unterstreichen aus
  106. IF Zeichen$=">" THEN Zeichen$=Esc$+"S0": RETURN :' Superscript ein
  107. IF Zeichen$="<" THEN Zeichen$=Esc$+"S1": RETURN :' Subscript ein
  108. IF Zeichen$="=" THEN Zeichen$=Esc$+"T" : RETURN :' Super-/Subscript aus
  109. IF Zeichen$="6" THEN Zeichen$=Esc$+"2" : RETURN :' 1/6 Zoll Zeilenabstand
  110. IF Zeichen$="8" THEN Zeichen$=Esc$+"0" : RETURN :' 1/8 Zoll Zeilenabstand
  111. IF Zeichen$="A" THEN Zeichen$=CHR$(12) : RETURN :' Anfang naechstes Blatt
  112. IF Zeichen$="T" THEN Zeichen$=CHR$(10) : RETURN :' Eine Zeile tiefer
  113. IF Zeichen$="H" THEN Zeichen$=Esc$+CHR$(10) : RETURN :' Eine Zeile hoeher
  114. IF Zeichen$="2" THEN Zeichen$=Esc$+"h"+CHR$(1) : RETURN :' Doppelt hoch/breit
  115. IF Zeichen$="4" THEN Zeichen$=Esc$+"h"+CHR$(2) : RETURN :' Vierfach hoch/breit
  116. IF Zeichen$="0" THEN Zeichen$=Esc$+"h"+CHR$(0) : RETURN :' Normale Groesse
  117. IF Zeichen$="L" THEN Zeichen$=Esc$+"a"+CHR$(0) : RETURN :' Linksbuendig
  118. IF Zeichen$="Z" THEN Zeichen$=Esc$+"a"+CHR$(1) : RETURN :' Zentriert
  119. IF Zeichen$="R" THEN Zeichen$=Esc$+"a"+CHR$(2) : RETURN :' Rechtsbuendig
  120. PRINT Zeichen$;
  121. RETURN
  122.  
  123.  
  124. Verzeichnis:
  125. CLS
  126. PRINT SPC(28)"VERZEICHNIS ANZEIGEN"
  127. PRINT SPC(28)"===================="
  128. PRINT
  129. FILES
  130. RETURN
  131.  
  132.  
  133. Wechsel:
  134. CLS
  135. PRINT SPC(28)"VERZEICHNIS WECHSELN"
  136. PRINT SPC(28)"===================="
  137. LOCATE 11,10
  138. INPUT"Name des neuen Verzeichnisses ";Verzeichnis$
  139. IF Verzeichnis$="" THEN CLS : RETURN
  140. CHDIR Verzeichnis$
  141. CLS
  142. RETURN
  143.  
  144.  
  145. Druckerreset:
  146. OPEN "PAR:" FOR OUTPUT AS #1
  147. PRINT#1,Esc$+CHR$(64)
  148. CLOSE 1
  149.  
  150.  
  151. Autor:
  152. CLS
  153. LOCATE 5,28
  154. PRINT "S P E Z I A L D R U C K"
  155. LOCATE 6,28
  156. PRINT "======================="
  157. LOCATE 8,24
  158. PRINT"Programmiert 3/1988 von Guido Coenen"
  159. LOCATE 9,26
  160. PRINT"Version fuer STAR NL 10 Drucker"
  161. RETURN
  162.  
  163.  
  164. Anleitung:
  165. CLS
  166. PRINT SPC(25)"K U R Z A N L E I T U N G"
  167. PRINT SPC(25)"========================="
  168. PRINT
  169. PRINT
  170. RESTORE
  171. FOR X=1 TO 16
  172.    READ Text$
  173.    PRINT SPC(8)Text$
  174. NEXT
  175. RETURN
  176.  
  177.  
  178. Beenden:
  179. CLS
  180. PRINT SPC(30)"PROGRAMM VERLASSEN"
  181. PRINT SPC(30)"=================="
  182. LOCATE 10,15
  183. PRINT "Moechten Sie wirklich das Programm beenden (J/N) ?";
  184. GOSUB JN
  185. IF NOT JN% THEN 
  186.    CLS
  187.    RETURN
  188. END IF
  189. MENU RESET
  190. WINDOW CLOSE 1
  191. SCREEN CLOSE 2
  192. END
  193.  
  194.  
  195. JN:
  196. JN$=INKEY$
  197. JN$=UCASE$(JN$)
  198. IF JN$<>"J" THEN IF JN$<>"N" GOTO JN
  199. JN%=JN$="J"
  200. RETURN
  201.  
  202.  
  203. Fehler:
  204. IF ERR=53 THEN PRINT "Die gewuenschte Datei existiert nicht !"
  205. IF ERR=57 THEN PRINT "Ein-/Ausgabefehler aufgetreten !!!"
  206. IF ERR=64 THEN PRINT "Ungueltiger Dateiname !"
  207. IF ERR=68 THEN PRINT "Geraet (Drucker oder Disk) ist nicht angeschlossen !"
  208. IF ERR=74 THEN PRINT "Angegebenes Geraet ist dem BASIC unbekannt !"
  209. PRINT "Fehlernummer = "ERR
  210. RESUME Zurueck
  211. Zurueck:
  212. RETURN
  213.  
  214.  
  215. DATA "Das Programm 'Spezialdruck' druckt Texte, die im ASCII-Format"
  216. DATA "gespeichert wurden, mit druckerspezifischen Steuerzeichen aus."
  217. DATA "Dazu muss in den ASCII-Text ein sog 'Kaufmanns-und' (&) einge-"
  218. DATA "fuegt werden und dahinter ein bestimmter Kennbuchstabe."
  219. DATA "Das Programm kann an jeden beliebigen Drucker angepasst werden,"
  220. DATA "indem die Steuercodes im Unterprogramm 'Interpretieren' ergaenzt"
  221. DATA "bzw. geaendert werden."
  222. DATA "Die Kennbuchstaben sind so gewaehlt, dass sie leicht zu behalten"
  223. DATA "sind. Dabei bedeutet ein Grossbuchstabe immer das Einschalten"
  224. DATA "der jeweiligen Sonderdruckfunktion und derselbe Buchstabe in"
  225. DATA "klein das Ausschalten der Sonderdruckfunktion." 
  226. DATA "Auch die Umlauttabelle im Unterprogramm 'Anpassungsdaten' ist"
  227. DATA "je nach Druckertyp zu aendern. Format: Erste DATA-Zahl = Original-"
  228. DATA "AMIGA-Zeichencode. Zweite DATA-Zahl = Drucker-Zeichencode."
  229. DATA "Beispiel:          D = AMIGA-Code 196"
  230. DATA "=========          D = STAR-CODE   91"
  231.  
  232.  
  233. Anpassungsdaten:
  234. DATA 196,91,214,92,220,93,228,123,246,124,252,125,223,126,167,64
  235. '       D  ,   V  ,   \  ,   d   ,   v   ,   \   ,   _   ,   '
  236.  
  237.